package cn.wolfcode.shop.service;

import cn.wolfcode.shop.domain.OrderInfo;
import cn.wolfcode.shop.mq.msg.SeckillSuccessDelayMsg;
import org.springframework.stereotype.Service;

public interface IOrderInfoService {
    /**
     * 做秒杀操作，包括  1.减库存  2.创建普通订单（秒杀定了依赖普通订单） 3.创建秒杀订单
     * @param seckillId
     */
    String doSeckill(Long seckillId, Long userId);

    /**
     * 通过订单编号和用户id查订单信息
     * @param orderNo
     * @param userId
     * @return
     */
    OrderInfo findByIdAndUserId(String orderNo, Long userId);

    /**
     * 检查订单是否超时未支付
     * @param orderNo
     * @param seckillId
     */
    void checkOrderTimeOut(String orderNo, Long seckillId);


    /**
     *
     * 回补 Redis 库存，清除本地缓存的售完标记
     * @param seckillId
     */
    void handlerFailedseckill(Long seckillId);
}

